1. Field of the Invention
This invention relates generally to the field of semiconductor device manufacturing and, more particularly, to a method and apparatus for scheduling based on state estimation uncertainties.
2. Description of the Related Art
It is typical in semiconductor manufacturing to see many different products being made by using a variety of process conditions on the same pieces of equipment. Because of the nature of the process conditions and the high cost of materials, it is very difficult and often impossible to obtain measurements of key process variables while the process is operating. Product wafers are run in batches on processing tools using recipes, which specify the parameters necessary to run the tool such as pressure, temperature, and processing time. Measurements are made after processing steps are completed to determine if batches meet their specifications. Run-to-run control methods use the measurement data available at the end of each run to determine better recipe settings for subsequent batches. This task is made more difficult by the fact that measurements are often confounded by several different possible sources of variation.
The manufacture of semiconductor devices is characterized by expensive equipment and raw materials being used to create microscopic features in a batch processing environment. In this environment, batches of wafers are subjected to a series of unit operations with the ultimate goal being to create functional parts. Throughout the operations, extreme processing conditions and features with a critical dimension being constructed are recurring themes. These conditions ultimately mean that it is difficult (and in many cases impossible) to measure important quality variables in situ. Variables of interest are typically measured after a batch has been processed. Unfortunately, it is typically not possible to go back and perform an operation again to correct a misprocessed batch. Therefore, effective process control is needed to ensure that every run goes according to plan.
Run-to-run control in semiconductor manufacturing is a type of batch control, where a batch may be as small as one wafer or as large as several lots of wafers. The standard output of a run-to-run controller is a process recipe. This recipe defines the set points for xe2x80x9clow-levelxe2x80x9d controllers built into the processing tool. In this way, the run-to-run controller supervises the tool controller by specifying required values for process variables such as temperature, pressure, flow, and process time. The tool controller handles the actuations necessary to maintain these variables at the requested values. A typical run-to-run control setup includes a feedback loop where adjustments are made to the recipe parameters based on batch properties measured after processing. Typically, the job of the run-to-run controller is to ensure that each batch hits its inline targets. Inline targets refer to measurements that are taken while the wafers have only completed some of their processing steps. The inline targets are designed to provide guidelines for having functional parts at the end of the manufacturing line.
Run-to-run controllers for discrete parts manufacture have several inherent complications. Unlike a continuous process, where plant outputs can be blended together to make particular products, each part that is produced must meet all of its quality or performance objectives to function correctly. As a result, aggressive control laws must be chosen because the manufacturing constraints do not allow a series of off-target batches while the controller approaches the target. When the system model is able to make accurate predictions, the controller can be quite aggressive. This is because the stability of the controller is tied to the ability of the model to match the behavior of the real system. A controller that is too aggressive in the presence of model error and other uncertainties can actually exhibit poor performance and may lead to instability. This situation may arise because a controller makes process decisions based on assumptions about how its input changes will affect the process. The qualitative effects of small input changes are often easily understood and predicted in terms of the underlying physics of the system. On the other hand, larger, more dramatic changes can upset the process by introducing dynamics more quickly than the process can handle. With better understanding of the process, changes can be made more quickly and effectively.
The most aggressive controller that can be used is a plant inverse, or deadbeat controller. This controller attempts to immediately reject any measured incoming disturbances and set the controlled parameters for each batch exactly at their targets. The parameters may be determined by substituting the desired outputs into the process model and solving directly for the inputs. More conservative control actions can be obtained by imposing limits on how quickly input variables are allowed to change.
Because the process gain and other variables important to the manufacturing processes can change over time, a successful controller must adapt to changing process conditions. At the foundation of such an adaptive controller are system identification techniques. System identification techniques aim to determine a model with the same input-output characteristics and possibly the same natural model structure as the physical system under study. In many practical applications, it is not feasible to obtain an exact model form for the process under study. So, online system identification often takes the form of a parameter estimation problem. In this formulation, a form for the model is predetermined, and the model parameters are updated recursively from process data. Changing process conditions can be seen as a change in the estimated model parameters over time.
In microelectronics manufacturing, it is standard practice to apply statistical process control (SPC) techniques to the process outputs. SPC can also be applied to the outputs of a system under automated control. These outputs include not only the controlled outputs of the process but also the measured deviation of the real process from the prediction used by the controller. In general, the use of SPC techniques involves setting limits on the variables of interest and investigating the process when it strays outside the limits. As its name implies, statistical process control is heavily rooted in treating the process variables of interest as distributions. Several different statistics can be monitored to ensure that the process remains stationary. These techniques are designed to indicate whether a process is running in control or not, but decisions about what to do when the process goes out of control are left to engineers.
These SPC techniques can represent how well an automated controller is doing in terms of keeping the process running inside the control limits. When the limits are exceeded, either the process or the automatic controller must be adjusted. However, real processes and the disturbances to them change over time, so it is not necessarily true that all process variables of interest will remain stationary. In addition, there are many systems where all of the measurements important to control cannot be taken as frequently as desired. For these systems, it is possible that some measurements that would be outliers are not identified simply because they are not measured. In this context, static limits on process variables do not always make sense. The ideal solution is an automatic controller that can detect process changes and adjust itself to account for them. Such an automatic controller could adjust the process before the control limits on the quality outputs are even violated. This controller must recognize that the model it uses may become invalid, so it must always treat new measurement data as an opportunity to remodel the process.
To achieve adequate performance in an uncertain environment, the control system must react to process changes. Adaptive control techniques are a class of control schemes where the controller automatically adjusts its model parameters and tuning to account for observed changes in the process itself. These techniques often rely on online model parameter estimation, and the controller settings are continually adjusted to match the current system model derived from the measurements. Adaptive control is useful when the true model of the system is complicated or of high order, since the control law can be based on a simpler model with adjustable parameters. These controllers can be obtained from a variety of design methods including pole placement techniques and minimization of quadratic cost functions. Adaptive control techniques can enable advanced control concepts such as optimal control to be used in cases where the system under study is very complicated or poorly understood.
For a given system with manipulated inputs and a quantitative performance objective, optimal control theory can be used to find the best set of inputs. The optimal control problem is to determine the set of inputs that minimize (or maximize) an objective function while satisfying the constraints of the system model and any additional process requirements. Mathematically, this is described by the equations below, where x represents the process state, u represents the manipulated input, t represents time, ƒ is the objective function, and gi are a series of constraints on the solution.                               min          u                ⁢                  f          ⁡                      (                          x              ,              u              ,              t                        )                                              (        1        )            xe2x80x83gi(x,u,f)xe2x89xa70xe2x80x83xe2x80x83(2)
For certain types of systems, this works well for solving the control problem. One advantage of optimal control is that the control objective is clearly defined. Evaluating the objective function at the solution provides a quantitative measure of the expected performance of the controller. When paired with adaptive techniques, optimal control can meet the control objectives even when the system changes over time. The optimal control equations are very general, and are not limited to describing simple systems. The constraint equations, gi, normally include differential equations or difference equations that govern the process as well as operating limits that are imposed on the process inputs and states. For most real processes, the above problem often results in a set of nonlinear differential equations with mixed boundary conditions.
Optimal solutions have been derived for some simple process models. One class of such problems is a linear (L) model and quadratic (Q) objective function with additive Gaussian (G) noise in the model, also called the LQG problem. For these systems, the optimal controller can be derived. In general, approximations must be made for real processes, and a sub-optimal controller must be used. This is because the true model of the system is often either unknown or too complicated for the optimal controller to have a closed form solution. A common approach is to formulate the problem as LQG and to use the corresponding linear controller.
One method used in adaptive control is a sub-optimal approach, where the process model is assumed to have a simple model form, but the values of the model parameters are undetermined or time-varying. In this formulation, the optimal control law for the chosen model form can be derived in terms of the unknown model parameters. Then, system identification techniques can be used to determine the values of the model parameters that best explain the observed system behavior.
In this case the controller has a model that is accurate in the vicinity of the current operating point. As the process moves to other operating points, the model parameters are updated, so that the controller can still function effectively. The key constraint is that the model must match the input-output behavior of the real process in the current region of interest. The presence of disturbances and dynamics that are not accounted for by the model can affect the stability of the controller. The controller must be able to respond intelligently to errors in the parameter estimates as well as actual changes in the process that require changes in the model parameters. An adaptive controller recursively estimates the model parameters after each sample, and the control action is then calculated using the new values of the parameter estimates.
There are different approaches to adaptive control. The procedure described above is an indirect method, where the control action is computed based on estimated model parameter values. In the direct adaptive control method, parameters in the control law itself (such as gains) are computed recursively from the measured errors. The optimal adaptive controller tries to solve a dual control problem using a formulation having as a goal the simultaneous control and identification of the process. A sufficiently advanced controller takes into account the need to characterize the process and xe2x80x9cprobesxe2x80x9d the process to obtain better parameter estimates.
The adaptive controller relies on system identification techniques to bridge the gap between the chosen model form and the actual model used for control by choosing appropriate values for all the parameters in the model form. System identification techniques fall into two main categories (i.e., offline and online) depending on whether or not they are performed in real time on data that are obtained while the system is operating.
Offline system identification schemes examine a complete set of process input and output data to arrive at a model. These schemes are very flexible because many different model forms can be tried, and they have the advantage of being able to analyze all of the process data at one time. Such a system can even use models such as artificial neural networks (ANN) that do not have prescribed structure. The main limitation of an offline system identification scheme is that it cannot predict how the model may change in the future.
Online system identification techniques are active as the process under study is running. They use process measurements and recursively update a system model of predetermined form. The estimator observes the system and adjusts the model parameters within the chosen model structure. In general, the estimator does not have a complete set of data with which to work. It only has access to the measurements that have already been made. However, an online system identification scheme has one distinct advantage over an offline method. The online method can quickly react to changes in the process. Process changes appear as errors in the values of the model parameters. If the process change is gradual over time, the online system identification method can adjust the model as the process changes, so the prediction error is kept low.
The common exponentially weighted moving average (EWMA) filtering technique can be used in recursive parameter estimation. Here, a new parameter estimate is obtained by using a weighted combination of a parameter estimate based on the current measurement and the current parameter estimate as shown in
xe2x80x83{tilde over (x)}k+1=xcexxkxe2x88x921+(1xe2x88x92xcex){tilde over (x)}k,xe2x80x83xe2x80x83(3)
where x is the measured value, and {tilde over (x)} is the estimate.
The choice of the EWMA weighting parameter, xcex, affects whether the estimator will respond slowly (for slowly drifting processes) or quickly (for processes undergoing a rapid change). So, different choices of the weighting parameter affect the stability of a controller using the parameter estimates under different circumstances.
To effectively estimate model parameters in an online recursive fashion, some process characteristics are required. Identification of a process under automatic control is complicated because the actions of the controller mask the underlying behavior of the process. In general, the inputs to the process have to vary in such a way that the model parameters can be uniquely identified. This requirement is called persistent excitation. A difficulty arises because the satisfaction of a typical control objective lowers the amount of excitation as the process reaches a steady state at the desired operating point.
Adaptive control techniques can be applied to batch processes for run-to-run control. The system model predicts the process behavior of each batch as well as how the system changes from batch to batch. The responsibility of the controller is to choose the optimal input settings for each batch. In a real manufacturing environment, process conditions are constantly changing, so the system models must be updated regularly. To arrive at the best inputs for each batch, the controller must react to the changing process conditions by adjusting the model parameters. This can be done by solving the system identification problem each time new data become available.
Run-to-run batch control in semiconductor manufacturing is often complicated by having multiple products and multiple processing tools. These situations arise very often in semiconductor manufacturing, but they are also an issue in other batch processing environments, such as the production of polymers. It is important that each batch meet its required specifications, but it is difficult to choose appropriate recipe settings when switching between different products and tools. Online system identification and adaptive control can help make this problem much more manageable. Of course, the success of the controller is dependent on the properties of the disturbances and system inputs as well as the controller design itself.
Consider a process that can be modeled linearly as a simple example,
x=rt.xe2x80x83xe2x80x83(4)
The extent of the reaction after time t is given by x, and r is the rate, which is known to fluctuate with changing process conditions. The target is a desired extent of reaction x*. After each run, a new estimate for the rate r is prepared based on the results of the run. In many applications, it is quickly observed that different products will have very different apparent reaction rates. However, the rate can drift from batch to batch, even if only one product is being made. This can be caused by reactor fouling, degradation of consumable materials, or process leaks.
Simply tracking an estimate for r from run to run is not acceptable because each switch to a different product appears as a step change. Each time the product switches, the rate estimate slowly moves to the new observed rate over the course of several runs. Reactor fouling causes the rate to continually decay over the course of the runs. An EWMA is used to filter the apparent rate data from each run, and the filtered values are used as the rate estimates. When a second product is run, the apparent rate is much different than what it was for the first product, and the filter causes the state estimate to slowly perceive this over time. The state estimate thus lags behind the observed value, especially when the products are switched. This difference between the estimate and the real state is what causes a controller using this estimate to miss the target.
Previous work in this area has led to the concept of observer scheduling. In this formulation, a model is developed for the tool state (x) that is independent of the product. This tool state is an intrinsic rate for the tool. A change in this rate affects all products that run on the tool.
xk+1=Axk+Bukxe2x80x83xe2x80x83(5)
The process state x is mapped to the product state y using the output equation
yk=Cxk.xe2x80x83xe2x80x83(6)
Then, the estimator is used to track the tool state x, rather than product state y. Inspection of the Kalman optimal filtering equations indicates that optimal observer gain is a function of the output mapping C. So, by using offline analysis, the repeatable product dependence can be quantified to arrive at a new model for the rate r, where r0 is the xe2x80x9cintrinsic ratexe2x80x9d of the processing tool, and kp is a product-specific correction factor.
r=r0kp.xe2x80x83xe2x80x83(7)
The observer then estimates r0 instead of r, by scaling the observed rate by the correct product-specific factor kp. In a situation where the product specific factors are known exactly, the scheme described above works very well. Changes in the operation of the processing tool are observed regardless of which product is running. However, in a real manufacturing environment, several complications arise. For example, there can be several processing tools, new products appear, and experiments can be very expensive in terms of both raw materials and processing tool downtime. The impact here is that the product specific factors are not always known a priori, so it is not necessarily safe to assume kp (and hence C) are known values.
The method above observes a single parameter (r0), but it is necessary to find a way to quickly obtain estimates for new values of kp. In principle, this can be done by observing the rate at each run, and updating the model parameters accordingly. In practice, observability concerns arise. The result of each run is a measurement of the apparent rate r, which is confounded by both r0 and kp, so any estimation scheme must be able to use the information available to adjust all the parameters as necessary.
To estimate r0 and kp from the data (r), the previous equation may be used with a Taylor series approximation,
xcex94r=r0xc3x97xcex94kp+kpxc3x97xcex94r0.xe2x80x83xe2x80x83(8)
An apparent change in the value of r can be expressed as a change in the estimates of r0 and kp. So, it is necessary to classify the changes (using an analysis of variance technique) to determine how to distribute the error between the two parameters.
One simple method of distributing the error is to apply a linear filter to each parameter.
r0.new=r0.measxcexr+r0.last(1xe2x88x92xcexr)xe2x80x83xe2x80x83(9)
kp.new=kp.measxcexk+kp.last(1xe2x88x92xcexk)xe2x80x83xe2x80x83(10)
The lambda values are varied to reflect the confidence in the parameter estimates. In situations where r0 is expected to be changing, xcexr is high, and in situations where kp is thought to be in error, xcexk is high.
As an example, for a well-established product, there is a high degree of confidence that kp is accurate. In addition, r0 is known to drift over time. Thus, the relation xcexr greater than  greater than xcexk is used. On the other hand, for a new product, there is less confidence in the value of kp. It is expected that an inaccurate kp will affect the rate more than the noise or drift in r0, so the condition xcexk greater than  greater than xcexr is set.
This technique, while simple to understand, is limited because it is a rule-based scheme that relies on concepts that are difficult to quantify. Furthermore, it is not always possible to solve the model equations for each parameter in turn.
A successful controller for the types of processes described herein would be able to address the dual problems of simultaneous identification and control. It is easier to learn about the process by making large input changes or running non-production experiments, but this directly opposes the primary goal of the controller. Making the process choices involves a tradeoff between tightly tracking the targets and helping to characterize the process because the two objectives conflict with each other.
Run-to-run control as practiced in high-volume multi-product semiconductor manufacturing does not easily fit into the framework of traditional approaches to process control. A traditional approach defines a process model with a given set of states, inputs, and outputs. In some cases, the model is static, and in others, it changes over time. At each time step, inputs and disturbances affect the states, and outputs are measured. Then, the controller makes an update and the process repeats. One reason this approach is not always successful is that there are often multiple processing tools as well as multiple products. It is a common practice in today""s microelectronics manufacturing facilities to have many different products and processes run on each processing tool, mainly because of the high capital costs associated with the tools and the limited capacity of the facility. In addition, of all the measurements important to a process, only a subset are generally made on each run. Determining how to do controller updates in this environment can be a challenging task.
A run-to-run controller relies on having a process model that is consistently correct from run to run. When the various processes run on the tool are significantly different, the controller may behave unexpectedly because a change to a new process can appear to be a large disturbance. In addition, it may take several successive runs of a given process for the controller to stabilize, but manufacturing constraints may prevent this from happening. In the best case, the controller would determine optimal settings for all processes that must run on the tool, regardless of the order in which they appear.
In an adaptive control strategy, an online system identification scheme runs along with the controller and constantly adjusts the model so that it mimics the true behavior of the system. One very difficult task in this situation is determining which of the many possibilities (parameters, bias estimates) is the source of the observed errors in the output. In semiconductor manufacturing, a common question is whether the errors are assignable to tool differences or to product differences.
The present invention is directed to overcoming, or at least reducing the effects of, one or more of the problems set forth above.
One aspect of the present invention is seen in a method for scheduling activities in a manufacturing system. The method includes defining a plurality of observed states associated with the manufacturing system. State estimates are generated for the observed states. Uncertainty values for the state estimates are generated. A plurality of candidate schedules for performing activities in the manufacturing system is identified. Changes to the uncertainty values are predicted based on the candidate schedules. One of the candidate schedules is selected based on the predicted changes to the uncertainty values.
Another aspect of the present invention is seen in a system for scheduling activities in a manufacturing system that includes a process controller and a scheduling controller. The process controller is configured to define a plurality of observed states associated with the manufacturing system, generate state estimates for the observed states, and generate uncertainty values for the state estimates. The scheduling controller is configured to identify a plurality of candidate schedules for performing activities in the manufacturing system, predict changes to the uncertainty values based on the candidate schedules, and select one of the candidate schedules based on the predicted changes to the uncertainty values.